#include <kuai/tool/typedef.h>
#include <kuai/tool/xyz.h>
#include <kuai/mol/element.h>

#ifndef KUAIMISC_ATOM_H
#define KUAIMISC_ATOM_H

namespace kuai {

	class Atom {
	public:
		String 				symbol;		//< element symbol
		Coord3D 			coords; 	//< coordinations
		RationalNumber		charge;		//< formal charge
		Index				isotope;	//< 0 for non isotope or a positive mass number of isotope

		const Element&
			element() const
		{
			return Element::getElement(symbol);
		}
		Index
			number() const
		{
			return element().number;
		}
	};

	typedef std::vector<Atom>	AtomArray;

}

#endif
